package collection.test;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

public class HeroList {
    public static void main(String[] args) {
        List<String> list =  new LinkedList<>();
//        List<String> list =  new ArrayList<>();
        list.add("大桥");
        list.add("小桥");
        list.add("诸葛亮");

//        - 插入元素
//  - `void add(int index, Object ele)`:在index位置插入ele元素
        list.add(2, "后裔");
        list.add(2, "后裔");
        System.out.println(list);
//  - boolean addAll(int index, Collection eles):从index位置开始将eles中的所有元素添加进来
        List<String> strings = new ArrayList<>();
        strings.add("周瑜");
        strings.add("鬼谷子");
        list.addAll(2, strings);
        System.out.println(list);
//- 获取元素
//  - `Object get(int index)`:获取指定index位置的元素
        System.out.println(list.get(5));
//  - List subList(int fromIndex, int toIndex):返回从fromIndex到toIndex位置的子集合 (左闭右开)
        List<String> subList = list.subList(1, 4);
        System.out.println(subList);
//- 获取元素索引
//  - int indexOf(Object obj):返回obj在集合中首次出现的位置
        System.out.println(list.indexOf("后裔"));

//  - int lastIndexOf(Object obj):返回obj在当前集合中末次出现的位置
        System.out.println(list.lastIndexOf("后裔"));
//- 删除和替换元素
//  - `Object remove(int index)`:移除指定index位置的元素，并返回此元素
        list.remove(1);
        System.out.println(list);
//  - `Object set(int index, Object ele)`:设置指定index位置的元素为ele
        list.set(1, "李元芳");
        System.out.println(list);
    }
}
